package com.cyf.db.bean;

import lombok.Data;

import java.util.Date;

/**
 * 微信账单
 */
@Data
public class PayOrder {

    public static final int PAY_SUCCESS = 1;
    public static final int PAY_FAIL = 2;
    public static final int PAY_UNKNOWN = 0;
    /* 交易类型：未知 */
    public static final int TRADETYPE_UNKNOWN = 3;

    public static final int PAYSTATUS_FAIL = 2;

    /* 支付方式：微信 */
    public static final int PAY_WAY_WECHAT = 0;
    /* 支付方式：支付宝 */
    public static final int PAY_WAY_ALIPAY = 1;
    /* 支付方式：银行卡 */
    public static final int PAY_WAY_BALANCE = 2;
    /* 支付方式：未知 */
    public static final int PAY_WAY_UNKNOWN = 3;
    /* 支付方式：现金 */
    public static final int PAY_WAY_CASH = 4;
    /* 支付方式：微信公众号 */
    public static final int PAY_WAY_WECHAT_JSAPI = 5;
    /* 支付方式：JD支付 */
    public static final int PAY_WAY_JD = 6;
    /* 支付方式：优惠券 */
    public static final int PAY_WAY_COUPON = 7;
    public static final int PAYSTATUS_UNKNOWN = 0;
    /* 交易类型：微信 */
    public static final int TRADETYPE_WECHAT = 0;
    /* 交易类型：app */
    public static final int TRADETYPE_APP = 1;
    /* 交易类型：自助缴费机 */
    public static final int TRADETYPE_SHPAY = 2;
    /* 交易类型：现金 */
    public static final int TRADETYPE_CASH = 4;

    /* 交易类型：主扫 */
    public static final int TRADETYPE_SCAN = 6;

    /* infoId类型：1车场中的入场记录的id */
    public static final int INFOTYPE_INPARKING = 1;
    /* infoId类型：2车场中的出场记录的id */
    public static final int INFOTYPE_INOUTPARKING = 2;
    /* infoId类型：3云端的feedetail充值记录id */
    public static final int INFOTYPE_FEEDETAIL = 3;

    /* 费用类型：3-月卡支付 */
    public static final int FEETYPE_RECHARGE = 3;
    /* 费用类型：1-自己支付 */
    public static final int FEETYPE_SELF = 1;
    /* 费用类型：2-帮人支付 */
    public static final int FEETYPE_HELP = 2;


    private int id;
    private String openid;        // 微信的openid
    private String userToken;    // app用户的token
    private int fee;
    private String orderNo; // 商户订单号
    private String transactionId; // 微信订单号
    //	private int fromParking;
//	private int toParking;
    private int feeType; // 支付类型：1自己支付 2帮人支付 3月卡充值
    private String plate;
    private Date outTime;
    private Date createdTime;
    private Integer send;
    private int parkingId;
    private int tradeType;    // 交易类型： 0-微信 1-APP
    private int payWay;        // 支付方式：0-微信 1-支付宝 2-银行卡 3-未知
    private int payStatus;    // 支付结果： 0未知 1成功 2失败 5 待支付
    private Date payTime;
    private Integer infoId;    // 车场中入场记录id/出场记录id/云端的feedetail的id  （可能为空：月卡网络充值、酷停发送支付费用）
    private Integer infoType;    // 1-infoId是入场记录id  2-infoId是出场记录id 3-infoId是feedetail的id
    private Integer month;    // 充值月数（feeType=3月卡充值时）

    private int actualFee;    // 实收费用
    private int couponFee;    // 优惠费用
    private Integer apiUserId;    // 调用api公司id（代表费用是他们上报上来的）
    private Date feeEndTime;    // 本次计费截止时间（下次请求计费时间）
    private Integer cashFee;    // 现金
    private Integer npsMAccountId;    // nps_manageaccount的id
    private Date intoTime;//车辆进场时间
    private int shouldFee;//应收费用
    // 出入记录唯一Id
    private String recordOrderId;
    private int isv;
    private Integer deviceId;
    private Integer couponId;
    private Integer serviceFee;
    private int cardFee;
    private int discountFee;
    private int freeFee;
    private int localFeegroupId;
    private int fromThird = 0;
    private String aliUserId;
    private int piType;

    public static String getPayWayDesc(Integer payWay) {
        switch (payWay) {
            case PayOrder.PAY_WAY_WECHAT:
            case PayOrder.PAY_WAY_WECHAT_JSAPI:
                return "微信支付";
            case PayOrder.PAY_WAY_ALIPAY:
                return "支付宝支付";
            case PayOrder.PAY_WAY_BALANCE:
                return "银行卡支付";
            case PayOrder.PAY_WAY_CASH:
                return "现金支付";
            case PayOrder.PAY_WAY_JD:
                return "京东支付";
            default: {
                return "现金支付";
            }
        }

    }
}
